home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / OCETemplates.a < prev    next >
Text File  |  1996-05-01  |  92KB  |  1,676 lines

  1. ;
  2. ;    File:        OCETemplates.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Templates Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__OCETEMPLATES__') = 'UNDEFINED' THEN
  19. __OCETEMPLATES__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  25.     include 'Events.a'
  26.     ENDIF
  27.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  28.     include 'OCE.a'
  29.     ENDIF
  30.     IF &TYPE('__OCESTANDARDMAIL__') = 'UNDEFINED' THEN
  31.     include 'OCEStandardMail.a'
  32.     ENDIF
  33.     IF FOR_SYSTEM7_ONLY THEN
  34. ;
  35. ;***********************************************************************************************
  36. ; ********************************* Template Resource Constants: *********************************
  37. ; ***********************************************************************************************
  38. ;
  39. ;  Current versions of all the different template types: 
  40.  
  41. kDETAspectVersion                EQU        -976
  42. kDETInfoPageVersion                EQU        -976
  43. kDETKillerVersion                EQU        -976
  44. kDETForwarderVersion            EQU        -976
  45. kDETFileTypeVersion                EQU        -976
  46. ;
  47. ;    "Normal" separation for template IDs within the file (this is just a suggestion; you can use whatever
  48. ;    separation you like, so long as two separate templates don't have overlapping resources): 
  49. ;
  50.  
  51. kDETIDSep                        EQU        250
  52. ;  A few predefined base IDs (again, just suggestions): 
  53.  
  54. kDETFirstID                        EQU        1000
  55. kDETSecondID                    EQU        1250
  56. kDETThirdID                        EQU        1500
  57. kDETFourthID                    EQU        1750
  58. kDETFifthID                        EQU        2000
  59. ;
  60. ;    Templates consist of a set of associated resources, at constant offsets from a "base ID" set by the
  61. ;    signature resource of the template. In the case of aspect templates, most of the resources in the
  62. ;    template are accessible from the template as property default values. The property number is the same
  63. ;    as the offset from the base ID of the resource. In describing the resources which make up templates,
  64. ;    we give the type, the offset, and a description. For aspect templates, the offset is also the property #. 
  65. ;    
  66. ;    All templates include the following resource fork resources:
  67. ;
  68. ;     Type    Offset                        Description
  69. ;     ----    ------                        -----------
  70. ;    'rstr'    kDETTemplateName            Contains the name of the template
  71. ;
  72. ;
  73.  
  74. kDETTemplateName                EQU        0
  75. ;
  76. ;    Aspects, info-pages, and forwarders include the following as well:
  77. ;
  78. ;     Type    Offset                        Description
  79. ;     ----    ------                        -----------
  80. ;    'rstr'    kDETRecordType                Contains the type of record this applies to
  81. ;    'rstr'    kDETAttributeType            Contains the type of attribute this applies to
  82. ;    'detn'    kDETAttributeValueTag        Contains the tag of the attribute values this applies to
  83. ;
  84. ;
  85.  
  86. kDETRecordType                    EQU        1
  87. kDETAttributeType                EQU        2
  88. kDETAttributeValueTag            EQU        3
  89. ;  ************************************ Aspects 
  90. ;
  91. ;    In the case of aspects, property numbers and resource id offsets are the same. Therefore, some of the following
  92. ;    defines are used for resource offsets, some are used for dynamically generated properties, and some are used for
  93. ;    both (i.e., properties which may be dynamically generated, but if they aren't, then they're taken from the
  94. ;    resource). Resource types are given in all cases below; even if there is no actual resource (for example in
  95. ;    the case of kDETAspectName), it indicates the type for the dynamically generated property. A resource type of
  96. ;    'rstr' corresponds to a property type of kDETPrTypeString; type 'detn' corresponds to kDETPrTypeNumber; and
  97. ;    'detb' corresponds to kDETPrTypeBinary.
  98. ;
  99. ;     Type    Offset                        Description
  100. ;     ----    ------                        -----------
  101. ;    'deta'    0                            Identifies the type of resource
  102. ;    'detc'    kDETCode                    Is the code resource, if any is used
  103. ;    'ICN#'    kDETAspectMainBitmap
  104. ;    'icl8'    kDETAspectMainBitmap
  105. ;    'icl4'    kDETAspectMainBitmap
  106. ;    'ics#'    kDETAspectMainBitmap
  107. ;    'ics8'    kDETAspectMainBitmap
  108. ;    'ics4'    kDETAspectMainBitmap
  109. ;    'sicn'    kDETAspectMainBitmap        Is the icon suite to display for this item type (main aspect only)
  110. ;    'rstr'    kDETAspectName                Contains the name of the item (attribute main aspect only)
  111. ;    'rst#'    kDETAspectCategory            Contains the internal categories for the record type (main aspect only)
  112. ;    'rst#'    kDETAspectExternalCategory    Contains the external (user-visible) names which correspond to the categories in
  113. ;                                        kDETAspectCategory; if this resource is not present, external names are taken from
  114. ;                                        another template; if no other template provides an external name for a given internal
  115. ;                                        category, the internal name is used as the external name (main aspect only)
  116. ;    'rstr'    kDETAspectKind                Is the item kind to display (main aspect only)
  117. ;    'detn'    kDETAspectGender            Is the gender of this kind of object for internationalization (main aspect only)
  118. ;    'rstr'    kDETAspectWhatIs            Is the string for balloon help when item is in sublist (main aspect only)
  119. ;    'rstr'    kDETAspectAliasKind            Is the item kind to display for aliases to this type of item (main aspect only)
  120. ;    'detn'    kDETAspectAliasGender        Is the gender of an alias to this kind of object for internationalization (main aspect only)
  121. ;    'rstr'    kDETAspectAliasWhatIs        Is the string for balloon help when an alias to the item is in sublist (main aspect only)
  122. ;    'rst#'    kDETAspectBalloons            Is a list of strings for balloon help; for each item in an info-page, it's
  123. ;                                        property # times 2 is used as an index into this array; if the item is not editable,
  124. ;                                        then the property # times 2 plus 1 is used
  125. ;    'rstr'    kDETAspectNewMenuName        Is the string to be used for the user to select new item creation; for records, the
  126. ;                                        string is used as a menu entry in the Catalogs menu; for attributes, the string
  127. ;                                        is used in a selection dialog invoked by an "Add..." button
  128. ;    'rstr'    kDETAspectNewEntryName        Is the name to be used for new records (with a digit appended if not unique)
  129. ;    'detb'    kDETAspectNewValue            Is the value to use when creating a new attribute value; the first four bytes
  130. ;                                        is the tag; the rest is the attribute value contents
  131. ;    'detn'    kDETAspectSublistOpenOnNew    If true (non-zero), automatically open newly created entries (property can be set
  132. ;                                        from a code resource, or via a default value in a resource)
  133. ;    'dett'    kDETAspectLookup            Is the attribute-to-property translation table
  134. ;    'rstr'    kDETAspectDragInString        Is a string describing the action of dragging into this aspect (if any)
  135. ;    'rstr'    kDETAspectDragInVerb        Is a single, short word that's the verb of the action (like "add" or "drop"; if
  136. ;                                        there's any doubt, use "OK")
  137. ;    'rstr'    kDETAspectDragInSummary        Is a short phrase that describes the action, suitable to be included in a selection list
  138. ;    'rst#'    kDETAspectRecordDragIn        Is a list of type pairs; in each pair, the first is the type of a record which
  139. ;                                        can be dragged into this aspect, and the second is the attribute type to store
  140. ;                                        the reference in
  141. ;    'rst#'    kDETAspectRecordCatDragIn    Is a list of category/attribute type pairs; in each pair, the first is the
  142. ;                                        category of records which can be dragged in, and the second is the type of
  143. ;                                        attribute to place the alias in
  144. ;    'rst#'    kDETAspectAttrDragIn        Is a list of type triples; in each triple, the first is the record type which can be
  145. ;                                        dragged from (or "" for any), the second is the attribute type which can be dragged
  146. ;                                        in, and the third is the attribute type to store the new attribute in
  147. ;    'rst#'    kDETAspectDragOut            Is a list of attribute types which can be dragged out of this aspect (an 'rst#'
  148. ;                                        resource with no entries means nothing can be dragged out; no 'rst#' resource means
  149. ;                                        everything can be dragged out)
  150. ;    'detm'    kDETAspectViewMenu            Is a table to fill in the view menu from
  151. ;    'detp'    kDETAspectReverseSort        Is a table listing which properties to sort in reverse order
  152. ;    'detw'    kDETAspectInfoPageCustomWindow    Is a specification of a custom window size/placement & whether to use the
  153. ;                                            page-selector (main aspect only)
  154. ;    'detv'    kDETAspectInfoPageCustomWindow    Is a view list which is common to all info-pages (main aspect only)
  155. ;
  156.  
  157. kDETAspectCode                    EQU        4
  158. kDETAspectMainBitmap            EQU        5
  159. kDETAspectName                    EQU        6
  160. kDETAspectCategory                EQU        7
  161. kDETAspectExternalCategory        EQU        8
  162. kDETAspectKind                    EQU        9
  163. kDETAspectGender                EQU        10
  164. kDETAspectWhatIs                EQU        11
  165. kDETAspectAliasKind                EQU        12
  166. kDETAspectAliasGender            EQU        13
  167. kDETAspectAliasWhatIs            EQU        14
  168. kDETAspectBalloons                EQU        15
  169. kDETAspectNewMenuName            EQU        16
  170. kDETAspectNewEntryName            EQU        17
  171. kDETAspectNewValue                EQU        18
  172. kDETAspectSublistOpenOnNew        EQU        19
  173. kDETAspectLookup                EQU        20
  174. kDETAspectDragInString            EQU        21
  175. kDETAspectDragInVerb            EQU        22
  176. kDETAspectDragInSummary            EQU        23
  177. kDETAspectRecordDragIn            EQU        24
  178. kDETAspectRecordCatDragIn        EQU        25
  179. kDETAspectAttrDragIn            EQU        26
  180. kDETAspectAttrDragOut            EQU        27
  181. kDETAspectViewMenu                EQU        28
  182. kDETAspectReverseSort            EQU        29
  183. kDETAspectInfoPageCustomWindow    EQU        30
  184. ;  Properties: 
  185.  
  186. kDETNoProperty                    EQU        -1
  187. ;  Each aspect has 250 attribute properties in this range: 
  188.  
  189. kDETFirstLocalProperty            EQU        0
  190. kDETLastLocalProperty            EQU        249
  191. ;  Developers should use property numbers starting at this point: 
  192.  
  193. kDETFirstDevProperty            EQU        40
  194. ;
  195. ; The following range provides constant numeric properties for use in patterns and comparisons (constant n is
  196. ;  
  197. ;   given by kDETFirstConstantProperty+n): 
  198. ;
  199.  
  200. kDETFirstConstantProperty        EQU        250
  201. kDETLastConstantProperty        EQU        499
  202. ;  To convert a number into a constant property, add this: 
  203.  
  204. kDETConstantProperty            EQU        250
  205. kDETZeroProperty                EQU        250
  206. kDETOneProperty                    EQU        251
  207. kDETFalseProperty                EQU        250
  208. kDETTrueProperty                EQU        251
  209. ;  The following apply to records, attributes, or aliases; they are the name and kind, as they appear in icon lists: 
  210.  
  211. kDETPrName                        EQU        3050
  212. kDETPrKind                        EQU        3051
  213. ;  Access mask properties: 
  214.  
  215. kDETDNodeAccessMask                EQU        25825                ; The DNode access mask 
  216. kDETRecordAccessMask            EQU        25826                ; The record access mask 
  217. kDETAttributeAccessMask            EQU        25827                ; The attribute access mask 
  218. kDETPrimaryMaskByBit            EQU        25828                ; A set of sixteen properties to access all bits of the primary mask 
  219. ;  See AOCE documentation for details definitions of each of these bits: 
  220.  
  221. kDETPrimarySeeMask                EQU        25828
  222. kDETPrimaryAddMask                EQU        25829
  223. kDETPrimaryDeleteMask            EQU        25830
  224. kDETPrimaryChangeMask            EQU        25831
  225. kDETPrimaryRenameMask            EQU        25832
  226. kDETPrimaryChangePrivsMask        EQU        25833
  227. kDETPrimaryTopMaskBit            EQU        25843
  228. ;  The following property is zero until we've completed the first catalog lookup; from then on it's 1 
  229.  
  230. kDETPastFirstLookup                EQU        26550
  231. ;  The following property is the page number; issuing a property command with this property will flip info-pages 
  232.  
  233. kDETInfoPageNumber                EQU        27050
  234. ;
  235. ; The value of the following properties contains the template number of the targeted aspect's template, and the
  236. ;   currently open info-page (if any). These values can be used with kDETAspectTemplate and kDETInfoPageTemplate
  237. ;   target selectors. 
  238. ;
  239.  
  240. kDETAspectTemplateNumber        EQU        26551
  241. kDETInfoPageTemplateNumber        EQU        26552
  242. ;  Properties for property commands to deal with sublist items: 
  243.  
  244. kDETOpenSelectedItems            EQU        26553                ; Open selected sublist items 
  245. kDETAddNewItem                    EQU        26554                ; Add new sublist item 
  246. kDETRemoveSelectedItems            EQU        26555                ; Remove selected sublist items 
  247. ;
  248. ; Property types are used to specify types of properties and conversions between types (zero and negative numbers
  249. ;   are reserved for Apple; developer code resources can use positive numbers): 
  250. ;
  251.  
  252. kDETPrTypeNumber                EQU        -1                    ; A number 
  253. kDETPrTypeString                EQU        -2                    ; A string 
  254. kDETPrTypeBinary                EQU        -3                    ; A binary block 
  255. ;  ************************************ Info-pages 
  256. ;
  257. ; Info-pages include the following as well:
  258. ;
  259. ;     Type    Offset                        Description
  260. ;     ----    ------                        -----------
  261. ;    'deti'    0                            Identifies the type of resource; see below for details on the contents
  262. ;    'rstr'    kDETInfoPageName            Is the name of the view to use in the page selection pop-up
  263. ;    'rstr'    kDETInfoPageMainViewAspect    Is the name of the aspect to use with the main page view
  264. ;    'rstr'    kDETInfoPageMenuName        Is the name of the catalogs menu ("Catalogs" if not present)
  265. ;    'detm'    kDETInfoPageMenuEntries        Are menu entries to go in the Catalogs menu
  266. ;
  267. ;
  268.  
  269. kDETInfoPageName                EQU        4
  270. kDETInfoPageMainViewAspect        EQU        5
  271. kDETInfoPageMenuName            EQU        6
  272. kDETInfoPageMenuEntries            EQU        7
  273. ;
  274. ; ************************************ Views 
  275. ;
  276. ;   Flags: 
  277. ;
  278.  
  279. kDETNoFlags                        EQU        0                    ; Main view (non-sublist) field enabled 
  280. kDETEnabled                        EQU        $01
  281. ;  The following flags make sense for items in a sublist only 
  282.  
  283.                                                             ; Hilight view when entry is selected 
  284. kDETHilightIfSelected            EQU        $01
  285. ;  The following flags make sense for text views only 
  286.  
  287. kDETNumericOnly                    EQU        $08                    ; Only allow the user to enter digits 
  288. kDETMultiLine                    EQU        $10                    ; Allow multiple lines in view 
  289. kDETDynamicSize                    EQU        $0200                ; Don't draw box around text until user clicks in it, then auto-size it 
  290.                                                             ; Don't allow the user to enter colons (convert ":"s to "-"s) 
  291. kDETAllowNoColons                EQU        $0400
  292. ;  The following flags are used for pop-up menus only 
  293.  
  294.                                                             ; Automatically resize pop-up based on contents 
  295. kDETPopupDynamicSize            EQU        $0100
  296. ;  The following flags are used for EditPicture views only 
  297.  
  298.                                                             ; Scale picture to view bounds rather than cropping 
  299. kDETScaleToView                    EQU        $0100
  300. ;     Sizes for icons 
  301.  
  302. kDETLargeIcon                    EQU        0
  303. kDETSmallIcon                    EQU        1
  304. kDETMiniIcon                    EQU        2
  305. ;  Stolen from TextEdit.h 
  306.  
  307. kDETLeft                        EQU        0
  308. kDETCenter                        EQU        1
  309. kDETRight                        EQU        -1
  310. kDETForceLeft                    EQU        -2
  311. ;  Flags for use within Box view type attributes - these are distinct from the flags above 
  312.  
  313. kDETUnused                        EQU        0
  314. kDETBoxTakesContentClicks        EQU        $01
  315. kDETBoxIsRounded                EQU        $02
  316. kDETBoxIsGrayed                    EQU        $04
  317. kDETBoxIsInvisible                EQU        $08
  318. ;  The common font info 
  319.  
  320. kDETApplicationFont                EQU        1
  321. kDETApplicationFontSize            EQU        9
  322. kDETAppFontLineHeight            EQU        12
  323. kDETSystemFont                    EQU        0
  324. kDETSystemFontSize                EQU        12
  325. kDETSystemFontLineHeight        EQU        16
  326. kDETDefaultFont                    EQU        1
  327. kDETDefaultFontSize                EQU        9
  328. kDETDefaultFontLineHeight        EQU        12
  329. ;     These were taken from QuickDraw.h (where they're enums and therefore unusable in resource definitions): 
  330.  
  331. kDETNormal                        EQU        0
  332. kDETBold                        EQU        1
  333. kDETItalic                        EQU        2
  334. kDETUnderline                    EQU        4
  335. kDETOutline                        EQU        8
  336. kDETShadow                        EQU        $10
  337. kDETCondense                    EQU        $20
  338. kDETExtend                        EQU        $40
  339.  
  340. kDETIconStyle                    EQU        -3                    ; Normal text style for regular sublist entries, italic text style for aliases 
  341. ;  View menu: 
  342.  
  343. kDETChangeViewCommand            EQU        'view'                ; Change the view; used especially in StaticCommandTextFromView sublist headers 
  344. ;  Info-page window sizes: 
  345. ;  Default record info-pages: 
  346.  
  347. kDETRecordInfoWindHeight        EQU        228
  348. kDETRecordInfoWindWidth            EQU        400
  349. ;  Default attribute info-pages: 
  350.  
  351. kDETAttributeInfoWindHeight        EQU        250
  352. kDETAttributeInfoWindWidth        EQU        230
  353. ;  Page identifying icon (for default info-page layout): 
  354.  
  355. kDETSubpageIconTop                EQU        8
  356. kDETSubpageIconLeft                EQU        8
  357. kDETSubpageIconBottom            EQU        40
  358. kDETSubpageIconRight            EQU        40
  359. ;
  360. ; ************************************ Killers 
  361. ;
  362. ;   Killers include the following as well:
  363. ;
  364. ;     Type    Offset                        Description
  365. ;     ----    ------                        -----------
  366. ;    'detk'    0                            Identifies the type of resource; see below for details on the contents
  367. ;    'rst#'    kDETKillerName                Contains a list of template names to be killed
  368. ;
  369. ;
  370.  
  371. kDETKillerName                    EQU        1
  372. ;
  373. ; ************************************ Forwarders 
  374. ;
  375. ;   Forwarders include the following as well:
  376. ;
  377. ;     Type    Offset                        Description
  378. ;     ----    ------                        -----------
  379. ;    'detf'    0                            Identifies the type of resource; see below for details on the contents
  380. ;    'rst#'    kDETForwarderTemplateNames    Contains a list of names of templates to forward to
  381. ;
  382. ;
  383.  
  384. kDETForwarderTemplateNames        EQU        4
  385. ; *********************************************************************************
  386. ; ******************************** Code Resources: ********************************
  387. ; *********************************************************************************
  388. ;  Target specification: 
  389.  
  390. kDETSelf                        EQU        0                    ; The "current" item 
  391. kDETSelfOtherAspect                EQU        1                    ; Another aspect of the current item 
  392. kDETParent                        EQU        2                    ; The parent (i.e., the aspect we're in the sublist of, if any) of the current item 
  393. kDETSublistItem                    EQU        3                    ; The itemNumberth item in the sublist 
  394. kDETSelectedSublistItem            EQU        4                    ; The itemNumberth selected item in the sublist 
  395. kDETDSSpec                        EQU        5                    ; The item specified by the packed DSSpec 
  396. kDETAspectTemplate                EQU        6                    ; A specific aspect template (number itemNumber) 
  397. kDETInfoPageTemplate            EQU        7                    ; A specific info-page template (number itemNumber) * Force type to be short 
  398. kDETHighSelector                EQU        $F000
  399. ; typedef long                             DETTargetSelector
  400.  
  401. DETTargetSpecification    RECORD 0
  402. selector                 ds.l    1                ; offset: $0 (0)        ;  Target selection method (see above) 
  403. aspectName                 ds.l    1                ; offset: $4 (4)        ;  The name of the aspect (kDETSelfOtherAspect, kDETSublistItem,
  404. ;    kDETSelectedSublistItem, kDETDSSpec); nil for main aspect or none; 
  405. ;   always filled in for calls if there is an aspect, even if it's the main aspect 
  406. itemNumber                 ds.l    1                ; offset: $8 (8)        ;  Sublist index (kDETSublistItem & kDETSelectedSublistItem & kDETAspectTemplate);
  407. ;    1-based indexing 
  408. dsSpec                     ds.l    1                ; offset: $C (12)        ;  DSSpec (kDETDSSpec only) 
  409. sizeof                     EQU *                    ; size:   $10 (16)
  410.                         ENDR
  411. ;
  412. ; Code resource calls and call-backs both return an OSType:
  413. ;        kDETDidNotHandle (1)    = used by template to say "I didn't handle it" (for calls only)
  414. ;        noErr                    = function completed successfully
  415. ;        any error                = function failed, and here's why
  416. ;
  417. ;
  418. ; Call-back functions:
  419. ;
  420. ;        reqFunction                            Action
  421. ;        -----------                            ------
  422. ;        kDETcmdBeep                            Call SysBeep; useful for testing that a code resource's calls/call-backs are working at all
  423. ;
  424. ;        kDETcmdBusy                            Put up watch cursor and switch processes; user events elicit a beep
  425. ;
  426. ;        kDETcmdChangeCallFors                Change call-fors mask
  427. ;
  428. ;        kDETcmdGetCommandSelectionCount        Get the command selection count (for calls which have a command selection list)
  429. ;        kDETcmdGetCommandItemN                Get command selection item n (for calls which have a command selection list)
  430. ;
  431. ;        kDETcmdOpenDSSpec                    PackedDSSpec open (can also be done via AppleEvents -- this is a short-cut)
  432. ;
  433. ;        kDETcmdAboutToTalk                    About to talk to user: bring us to front, disable watch cursor, etc.
  434. ;
  435. ;        kDETcmdUnloadTemplates                Flush templates
  436. ;
  437. ;        kDETcmdTemplateCounts                Return number of aspect and info-page templates in system
  438. ;
  439. ;        kDETcmdGetDSSpec                    Get the PackedDSSpec for this object
  440. ;
  441. ;        kDETcmdSublistCount                    Return the count of the sublist items
  442. ;        kDETcmdSelectedSublistCount            Return the count of the selected sublist items
  443. ;
  444. ;        kDETcmdRequestSync                    Request a sync-up of the aspect with the catalog
  445. ;
  446. ;        kDETcmdBreakAttribute                Break an attribute -- apply all applicable patterns to an attribute to generate properties
  447. ;
  448. ;        kDETcmdGetTemplateFSSpec            Get the FSSpec of the file containing the template
  449. ;
  450. ;        kDETcmdGetOpenEdit                    Return the property of the view being edited (or kDETNoProperty if none)
  451. ;        kDETcmdCloseEdit                    Close the current edit
  452. ;
  453. ;        kDETcmdGetPropertyType                Get a property type
  454. ;
  455. ;        kDETcmdGetPropertyNumber            Get a property, number format
  456. ;        kDETcmdGetPropertyRString            Get a property, RString format
  457. ;        kDETcmdGetPropertyBinarySize        Get a property, binary, return size
  458. ;        kDETcmdGetPropertyBinary            Get a property, binary format
  459. ;
  460. ;        kDETcmdGetPropertyChanged            Get a property changed flag
  461. ;        kDETcmdGetPropertyEditable            Get a property editable flag
  462. ;
  463. ;        kDETcmdSetPropertyType                Set a property type
  464. ;
  465. ;        kDETcmdSetPropertyNumber            Set a property, number format
  466. ;        kDETcmdSetPropertyRString            Set a property, RString format
  467. ;        kDETcmdSetPropertyBinary            Set a property, binary data & size
  468. ;
  469. ;        kDETcmdSetPropertyChanged            Set a property changed flag
  470. ;        kDETcmdSetPropertyEditable            Set a property editable flag
  471. ;
  472. ;        kDETcmdDirtyProperty                Dirty a property (notify other code resources of change)
  473. ;
  474. ;        kDETcmdDoPropertyCommand            Issue a property command
  475. ;
  476. ;        kDETcmdAddMenu                        Add to the end of a dynamic menu
  477. ;        kDETcmdRemoveMenu                    Remove a dynamic menu item
  478. ;        kDETcmdMenuItemRString                Get a dynamic menu item RString
  479. ;
  480. ;        kDETcmdSaveProperty                    Force a save of a property -- apply all applicable patterns to write out the property
  481. ;
  482. ;        kDETcmdGetCustomViewUserReference    Get custom view user reference (as given in .r file)
  483. ;        kDETcmdGetCustomViewBounds            Get custom view current bounds
  484. ;
  485. ;        kDETcmdGetResource                    Get a resource from a template
  486. ;
  487.  
  488. kDETcmdSimpleCallback            EQU        0
  489. kDETcmdBeep                        EQU        1
  490. kDETcmdBusy                        EQU        2
  491. kDETcmdChangeCallFors            EQU        3
  492. kDETcmdGetCommandSelectionCount    EQU        4
  493. kDETcmdGetCommandItemN            EQU        5
  494. kDETcmdOpenDSSpec                EQU        6
  495. kDETcmdAboutToTalk                EQU        7
  496. kDETcmdUnloadTemplates            EQU        8
  497. kDETcmdTemplateCounts            EQU        9
  498. kDETcmdTargetedCallback            EQU        1000
  499. kDETcmdGetDSSpec                EQU        1001
  500. kDETcmdSublistCount                EQU        1002
  501. kDETcmdSelectedSublistCount        EQU        1003
  502. kDETcmdRequestSync                EQU        1004
  503. kDETcmdBreakAttribute            EQU        1005
  504. kDETcmdGetTemplateFSSpec        EQU        1006
  505. kDETcmdGetOpenEdit                EQU        1007
  506. kDETcmdCloseEdit                EQU        1008
  507. kDETcmdPropertyCallback            EQU        2000
  508. kDETcmdGetPropertyType            EQU        2001
  509. kDETcmdGetPropertyNumber        EQU        2002
  510. kDETcmdGetPropertyRString        EQU        2003
  511. kDETcmdGetPropertyBinarySize    EQU        2004
  512. kDETcmdGetPropertyBinary        EQU        2005
  513. kDETcmdGetPropertyChanged        EQU        2006
  514. kDETcmdGetPropertyEditable        EQU        2007
  515. kDETcmdSetPropertyType            EQU        2008
  516. kDETcmdSetPropertyNumber        EQU        2009
  517. kDETcmdSetPropertyRString        EQU        2010
  518. kDETcmdSetPropertyBinary        EQU        2011
  519. kDETcmdSetPropertyChanged        EQU        2012
  520. kDETcmdSetPropertyEditable        EQU        2013
  521. kDETcmdDirtyProperty            EQU        2014
  522. kDETcmdDoPropertyCommand        EQU        2015
  523. kDETcmdAddMenu                    EQU        2016
  524. kDETcmdRemoveMenu                EQU        2017
  525. kDETcmdMenuItemRString            EQU        2018
  526. kDETcmdSaveProperty                EQU        2019
  527. kDETcmdGetCustomViewUserReference EQU    2020
  528. kDETcmdGetCustomViewBounds        EQU        2021
  529. kDETcmdGetResource                EQU        2022                ; Force type to be long 
  530. kDETcmdHighCallback                EQU        $F0000000
  531. ; typedef unsigned long                 DETCallBackFunctions
  532.  
  533. ;
  534. ; Call functions:
  535. ;
  536. ;        reqFunction                        Action
  537. ;        -----------                        ------
  538. ;        kDETcmdInit                        Called once when template is first loaded (good time to allocate private data); returns call-for list
  539. ;        kDETcmdExit                        Called once when template is freed (good time to free private data)
  540. ;
  541. ;        kDETcmdAttributeCreation        New sublist attribute creation about to occur; this gives the template a chance to modify
  542. ;                                        the value that's about to be created; sent to the template that will be used for
  543. ;                                        the main aspect of the new entry
  544. ;
  545. ;        kDETcmdDynamicForwarders        Return a list of dynamically created forwarders
  546. ;
  547. ;        kDETcmdInstanceInit                Called once when instance of template is started (good time to allocate private instance data)
  548. ;        kDETcmdInstanceExit                Called once when instance is ended (good time to free private instance data)
  549. ;
  550. ;        kDETcmdIdle                        Called periodically during idle times
  551. ;
  552. ;        kDETcmdViewListChanged            Called when the info-page view-list (list of enabled views) has changed
  553. ;
  554. ;        kDETcmdValidateSave                Validate save: about to save info-page, return noErr (or kDETDidNotHandle) if it's OK to do so
  555. ;
  556. ;        kDETcmdDropQuery                Drop query: return the appropriate operation for this drag; ask destination
  557. ;        kDETcmdDropMeQuery                Drop query: return the appropriate operation for this drag; ask dropee
  558. ;
  559. ;        kDETcmdAttributeNew                Attribute value new (return kDETDidNotHandle to let normal new processing occur)
  560. ;        kDETcmdAttributeChange            Attribute value change (return kDETDidNotHandle to let normal change processing occur)
  561. ;        kDETcmdAttributeDelete            Attribute value delete (return kDETDidNotHandle to let normal deletion occur); sent to the
  562. ;                                        main aspect of the attribute that's about to be deleted
  563. ;        kDETcmdItemNew                    Target item (record or attribute) has just been created
  564. ;
  565. ;        kDETcmdOpenSelf                    Self open (return noErr to prevent opening; return kDETDidNotHandle to allow it)
  566. ;
  567. ;        kDETcmdDynamicResource            Return a dynamically created resource
  568. ;
  569. ;        kDETcmdShouldSync                Check if the code resource wants to force a sync (update data from catalog)
  570. ;        kDETcmdDoSync                    Give code resource a chance to sync (read in and break all attributes)
  571. ;
  572. ;        kDETcmdPropertyCommand            Command received in the property number range (usually means a button's been pushed)
  573. ;
  574. ;        kDETcmdMaximumTextLength        Return maximum size for text form of property
  575. ;
  576. ;        kDETcmdPropertyDirtied            Property dirtied, need to redraw
  577. ;
  578. ;        kDETcmdPatternIn                Custom pattern element encountered on reading in an attribute
  579. ;        kDETcmdPatternOut                Custom pattern element encountered on writing out an attribute
  580. ;
  581. ;        kDETcmdConvertToNumber            Convert from template-defined property type to number
  582. ;        kDETcmdConvertToRString            Convert from template-defined property type to RString
  583. ;        kDETcmdConvertFromNumber        Convert from number to template-defined property type
  584. ;        kDETcmdConvertFromRString        Convert from RString to template-defined property type
  585. ;
  586. ;        kDETcmdCustomViewDraw            Custom view draw
  587. ;        kDETcmdCustomViewMouseDown        Custom view mouse down
  588. ;
  589. ;        kDETcmdKeyPress                    Key press (used primarily to filter entry into EditText views)
  590. ;        kDETcmdPaste                    Paste (used primarily to filter entry into EditText views)
  591. ;
  592. ;        kDETcmdCustomMenuSelected        Custom Catalogs menu selected
  593. ;        kDETcmdCustomMenuEnabled        Return whether custom Catalogs menu entry should be enabled
  594. ;
  595.  
  596. kDETcmdSimpleCall                EQU        0
  597. kDETcmdInit                        EQU        1
  598. kDETcmdExit                        EQU        2
  599. kDETcmdAttributeCreation        EQU        3
  600. kDETcmdDynamicForwarders        EQU        4
  601. kDETcmdTargetedCall                EQU        1000
  602. kDETcmdInstanceInit                EQU        1001
  603. kDETcmdInstanceExit                EQU        1002
  604. kDETcmdIdle                        EQU        1003
  605. kDETcmdViewListChanged            EQU        1004
  606. kDETcmdValidateSave                EQU        1005
  607. kDETcmdDropQuery                EQU        1006
  608. kDETcmdDropMeQuery                EQU        1007
  609. kDETcmdAttributeNew                EQU        1008
  610. kDETcmdAttributeChange            EQU        1009
  611. kDETcmdAttributeDelete            EQU        1010
  612. kDETcmdItemNew                    EQU        1011
  613. kDETcmdOpenSelf                    EQU        1012
  614. kDETcmdDynamicResource            EQU        1013
  615. kDETcmdShouldSync                EQU        1014
  616. kDETcmdDoSync                    EQU        1015
  617. kDETcmdPropertyCall                EQU        2000
  618. kDETcmdPropertyCommand            EQU        2001
  619. kDETcmdMaximumTextLength        EQU        2002
  620. kDETcmdPropertyDirtied            EQU        2003
  621. kDETcmdPatternIn                EQU        2004
  622. kDETcmdPatternOut                EQU        2005
  623. kDETcmdConvertToNumber            EQU        2006
  624. kDETcmdConvertToRString            EQU        2007
  625. kDETcmdConvertFromNumber        EQU        2008
  626. kDETcmdConvertFromRString        EQU        2009
  627. kDETcmdCustomViewDraw            EQU        2010
  628. kDETcmdCustomViewMouseDown        EQU        2011
  629. kDETcmdKeyPress                    EQU        2012
  630. kDETcmdPaste                    EQU        2013
  631. kDETcmdCustomMenuSelected        EQU        2014
  632. kDETcmdCustomMenuEnabled        EQU        2015
  633. kDETcmdHighCall                    EQU        $F0000000            ; Force the type to be long 
  634. ; typedef unsigned long                 DETCallFunctions
  635.  
  636. ;  Valid commandIDs for DETDropQueryBlock and DETDropMeQueryBlock (in addition to property numbers): 
  637.  
  638. kDETDoNothing                    EQU        'xxx0'
  639. kDETMove                        EQU        'move'
  640. kDETDrag                        EQU        'drag'
  641. kDETAlias                        EQU        'alis'
  642. DETProtoCallBackBlock    RECORD 0
  643. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  644. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  645. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  646. sizeof                     EQU *                    ; size:   $16 (22)
  647.                         ENDR
  648. DETBeepBlock            RECORD 0
  649. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  650. sizeof                     EQU *                    ; size:   $4 (4)
  651.                         ENDR
  652. DETBusyBlock            RECORD 0
  653. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  654. sizeof                     EQU *                    ; size:   $4 (4)
  655.                         ENDR
  656. DETChangeCallForsBlock    RECORD 0
  657. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  658. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  659. newCallFors                 ds.l    1                ; offset: $14 (20)        ;   -> New call-for mask 
  660. sizeof                     EQU *                    ; size:   $18 (24)
  661.                         ENDR
  662. DETGetCommandSelectionCountBlock RECORD 0
  663. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  664. count                     ds.l    1                ; offset: $4 (4)        ;  <-  The number of items in the command selection list 
  665. sizeof                     EQU *                    ; size:   $8 (8)
  666.                         ENDR
  667.  
  668. kDETHFSType                        EQU        0                    ; HFS item type 
  669. kDETDSType                        EQU        1                    ; Catalog Service item type 
  670. kDETMailType                    EQU        2                    ; Mail (letter) item type 
  671. kDETMoverType                    EQU        3                    ; Sounds, fonts, etc., from inside a suitcase or system file 
  672. kDETLastItemType                EQU        $F0000000            ; Force it to be a long (C & C++ seem to disagree about the definition of 0xF000) 
  673. ; typedef unsigned long                 DETItemType
  674.  
  675. ;  FSSpec plus possibly interesting additional info 
  676. DETFSInfo                RECORD 0
  677. fileType                 ds.l    1                ; offset: $0 (0)        ;  File type 
  678. fileCreator                 ds.l    1                ; offset: $4 (4)        ;  File creator 
  679. fdFlags                     ds.w    1                ; offset: $8 (8)        ;  Finder flags 
  680. fsSpec                     ds        FSSpec            ; offset: $A (10)        ;  FSSpec 
  681. sizeof                     EQU *                    ; size:   $50 (80)
  682.                         ENDR
  683. DSRec                    RECORD 0
  684. dsSpec                     ds.l    1                ; offset: $0 (0)        ;  <-  DSSpec for item (caller must DisposHandle() when done) 
  685. refNum                     ds.w    1                ; offset: $4 (4)        ;  <-  Refnum for returned address 
  686. identity                 ds.l    1                ; offset: $6 (6)        ;  <-  Identity for returned address 
  687. sizeof                     EQU *                    ; size:   $A (10)
  688.                         ENDR
  689. ItemRec                    RECORD 0
  690. fsInfo                     ds.l    1                ; offset: $0 (0)        ;  <-  FSSpec & info for item (caller must DisposHandle() when done) 
  691.                          ORG 0
  692. ds                         ds        DSRec            ; offset: $0 (0)
  693.                          ORG 0
  694. dsSpec                     ds.l    1                ; offset: $0 (0)        ;  <-  DSSpec for item (caller must DisposHandle() when done) 
  695.                          ORG 0
  696. ltrSpec                     ds.l    1                ; offset: $0 (0)        ;  <-  Letter spec for item (caller must DisposHandle() when done) 
  697.                          ORG 10
  698. sizeof                     EQU *                    ; size:   $A (10)
  699.                         ENDR
  700. DETGetCommandItemNBlock    RECORD 0
  701. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  702. itemNumber                 ds.l    1                ; offset: $4 (4)        ;   -> Item number to retrieve (1-based) 
  703. itemType                 ds.l    1                ; offset: $8 (8)        ;   -> Type of item to be returned (if we can interpret it as such) 
  704. item                     ds        ItemRec            ; offset: $C (12)
  705. sizeof                     EQU *                    ; size:   $16 (22)
  706.                         ENDR
  707. DETGetDSSpecBlock        RECORD 0
  708. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  709. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  710. dsSpec                     ds.l    1                ; offset: $14 (20)        ;  <-  Handle with result (caller must DisposHandle() when done) 
  711. refNum                     ds.w    1                ; offset: $18 (24)        ;  <-  Refnum for address if PD 
  712. identity                 ds.l    1                ; offset: $1A (26)        ;  <-  Identity for address 
  713. isAlias                     ds.b    1                ; offset: $1E (30)        ;  <-  True if this entry is an alias 
  714. isRecordRef                 ds.b    1                ; offset: $1F (31)        ;  <-  True if this entry is a record reference (reserved) 
  715. sizeof                     EQU *                    ; size:   $20 (32)
  716.                         ENDR
  717. DETGetTemplateFSSpecBlock RECORD 0
  718. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  719. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  720. fsSpec                     ds        FSSpec            ; offset: $14 (20)        ;  <-  FSSpec of template file 
  721. baseID                     ds.w    1                ; offset: $5A (90)        ;  <-  Base ID of this template 
  722. aspectTemplateNumber     ds.l    1                ; offset: $5C (92)        ;  <-  The template number for this aspect template 
  723. sizeof                     EQU *                    ; size:   $60 (96)
  724.                         ENDR
  725. DETGetOpenEditBlock        RECORD 0
  726. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  727. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  728. viewProperty             ds.w    1                ; offset: $14 (20)        ;  <-  The property of the view being edited (or kNoProperty if none) 
  729. sizeof                     EQU *                    ; size:   $16 (22)
  730.                         ENDR
  731. DETCloseEditBlock        RECORD 0
  732. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  733. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  734. sizeof                     EQU *                    ; size:   $14 (20)
  735.                         ENDR
  736. DETGetPropertyTypeBlock    RECORD 0
  737. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  738. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  739. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  740. propertyType             ds.w    1                ; offset: $16 (22)        ;  <-  The type of the property 
  741. sizeof                     EQU *                    ; size:   $18 (24)
  742.                         ENDR
  743. DETGetPropertyNumberBlock RECORD 0
  744. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  745. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  746. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  747. propertyValue             ds.l    1                ; offset: $16 (22)        ;  <-  The value of the property 
  748. sizeof                     EQU *                    ; size:   $1A (26)
  749.                         ENDR
  750. DETGetPropertyRStringBlock RECORD 0
  751. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  752. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  753. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  754. propertyValue             ds.l    1                ; offset: $16 (22)        ;  <-  A handle containing the property (as an RString) (caller must DisposHandle() when done) 
  755. sizeof                     EQU *                    ; size:   $1A (26)
  756.                         ENDR
  757. DETGetPropertyBinarySizeBlock RECORD 0
  758. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  759. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  760. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  761. propertyBinarySize         ds.l    1                ; offset: $16 (22)        ;  <-  The size of the property as a binary block 
  762. sizeof                     EQU *                    ; size:   $1A (26)
  763.                         ENDR
  764. DETGetPropertyBinaryBlock RECORD 0
  765. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  766. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  767. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  768. propertyValue             ds.l    1                ; offset: $16 (22)        ;  <-  Handle with the value of the property (caller must DisposHandle() when done) 
  769. sizeof                     EQU *                    ; size:   $1A (26)
  770.                         ENDR
  771. DETGetPropertyChangedBlock RECORD 0
  772. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  773. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  774. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  775. propertyChanged             ds.b    1                ; offset: $16 (22)        ;  <-  True if the property is marked as changed 
  776. filler1                     ds.b    1                ; offset: $17 (23)
  777. sizeof                     EQU *                    ; size:   $18 (24)
  778.                         ENDR
  779. DETGetPropertyEditableBlock RECORD 0
  780. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  781. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  782. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  783. propertyEditable         ds.b    1                ; offset: $16 (22)        ;  <-  True if the property can be edited by the user (if false, view will appear disabled) 
  784. filler1                     ds.b    1                ; offset: $17 (23)
  785. sizeof                     EQU *                    ; size:   $18 (24)
  786.                         ENDR
  787. DETSetPropertyTypeBlock    RECORD 0
  788. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  789. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  790. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  791. newType                     ds.w    1                ; offset: $16 (22)        ;   -> New type for property (just sets type, does not convert contents) 
  792. sizeof                     EQU *                    ; size:   $18 (24)
  793.                         ENDR
  794. DETSetPropertyNumberBlock RECORD 0
  795. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  796. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  797. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  798. newValue                 ds.l    1                ; offset: $16 (22)        ;   -> New value to set property to (and set type to number) 
  799. sizeof                     EQU *                    ; size:   $1A (26)
  800.                         ENDR
  801. DETSetPropertyRStringBlock RECORD 0
  802. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  803. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  804. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  805. newValue                 ds.l    1                ; offset: $16 (22)        ;   -> New value to set property to (and set type to RString) 
  806. sizeof                     EQU *                    ; size:   $1A (26)
  807.                         ENDR
  808. DETSetPropertyBinaryBlock RECORD 0
  809. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  810. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  811. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  812. newValue                 ds.l    1                ; offset: $16 (22)        ;   -> New value to set property to (and set type to binary) 
  813. newValueSize             ds.l    1                ; offset: $1A (26)        ;   -> Size of new value 
  814. sizeof                     EQU *                    ; size:   $1E (30)
  815.                         ENDR
  816. DETSetPropertyChangedBlock RECORD 0
  817. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  818. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  819. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  820. propertyChanged             ds.b    1                ; offset: $16 (22)        ;   -> Value to set changed flag on property to 
  821. filler1                     ds.b    1                ; offset: $17 (23)
  822. sizeof                     EQU *                    ; size:   $18 (24)
  823.                         ENDR
  824. DETSetPropertyEditableBlock RECORD 0
  825. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  826. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  827. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  828. propertyEditable         ds.b    1                ; offset: $16 (22)        ;   -> Value to set editable flag on property to 
  829. filler1                     ds.b    1                ; offset: $17 (23)
  830. sizeof                     EQU *                    ; size:   $18 (24)
  831.                         ENDR
  832. DETDirtyPropertyBlock    RECORD 0
  833. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  834. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  835. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  836. sizeof                     EQU *                    ; size:   $16 (22)
  837.                         ENDR
  838. DETDoPropertyCommandBlock RECORD 0
  839. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  840. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  841. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  842. parameter                 ds.l    1                ; offset: $16 (22)        ;  ->  Parameter of command 
  843. sizeof                     EQU *                    ; size:   $1A (26)
  844.                         ENDR
  845. DETSublistCountBlock    RECORD 0
  846. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  847. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  848. count                     ds.l    1                ; offset: $14 (20)        ;  <-  The number of items in the current item's sublist 
  849. sizeof                     EQU *                    ; size:   $18 (24)
  850.                         ENDR
  851. DETSelectedSublistCountBlock RECORD 0
  852. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  853. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  854. count                     ds.l    1                ; offset: $14 (20)        ;  <-  The number of selected items in the current item's sublist 
  855. sizeof                     EQU *                    ; size:   $18 (24)
  856.                         ENDR
  857. DETRequestSyncBlock        RECORD 0
  858. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  859. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  860. sizeof                     EQU *                    ; size:   $14 (20)
  861.                         ENDR
  862. DETAddMenuBlock            RECORD 0
  863. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  864. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  865. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  866. name                     ds.l    1                ; offset: $16 (22)        ;   -> Name of new menu item 
  867. parameter                 ds.l    1                ; offset: $1A (26)        ;   -> Parameter to return when this item is selected 
  868. addAfter                 ds.l    1                ; offset: $1E (30)        ;   -> Parameter of entry to add after, or -1 for add at end 
  869. sizeof                     EQU *                    ; size:   $22 (34)
  870.                         ENDR
  871. DETRemoveMenuBlock        RECORD 0
  872. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  873. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  874. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  875. itemToRemove             ds.l    1                ; offset: $16 (22)        ;   -> Parameter of menu item to remove 
  876. sizeof                     EQU *                    ; size:   $1A (26)
  877.                         ENDR
  878. DETMenuItemRStringBlock    RECORD 0
  879. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  880. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  881. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  882. itemParameter             ds.l    1                ; offset: $16 (22)        ;   -> Parameter of menu item to return string for 
  883. rString                     ds.l    1                ; offset: $1A (26)        ;  <-  Handle with the RString (caller must DisposHandle() when done) 
  884. sizeof                     EQU *                    ; size:   $1E (30)
  885.                         ENDR
  886. DETOpenDSSpecBlock        RECORD 0
  887. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  888. dsSpec                     ds.l    1                ; offset: $4 (4)        ;   -> DSSpec of object to be opened 
  889. sizeof                     EQU *                    ; size:   $8 (8)
  890.                         ENDR
  891. DETAboutToTalkBlock        RECORD 0
  892. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  893. sizeof                     EQU *                    ; size:   $4 (4)
  894.                         ENDR
  895. DETBreakAttributeBlock    RECORD 0
  896. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  897. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  898. breakAttribute             ds.l    1                ; offset: $14 (20)        ;   -> Attribute to parse 
  899. isChangeable             ds.b    1                ; offset: $18 (24)        ;   -> True if the value can be changed by the user 
  900. filler1                     ds.b    1                ; offset: $19 (25)
  901. sizeof                     EQU *                    ; size:   $1A (26)
  902.                         ENDR
  903. DETSavePropertyBlock    RECORD 0
  904. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  905. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  906. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  907. sizeof                     EQU *                    ; size:   $16 (22)
  908.                         ENDR
  909. DETGetCustomViewUserReferenceBlock RECORD 0
  910. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  911. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  912. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  913. userReference             ds.w    1                ; offset: $16 (22)        ;  <-  User reference value, as specified in the .r file 
  914. sizeof                     EQU *                    ; size:   $18 (24)
  915.                         ENDR
  916. DETGetCustomViewBoundsBlock RECORD 0
  917. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  918. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  919. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  920. bounds                     ds        Rect            ; offset: $16 (22)        ;  <-  Bounds of the view 
  921. sizeof                     EQU *                    ; size:   $1E (30)
  922.                         ENDR
  923. DETGetResourceBlock        RECORD 0
  924. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  925. target                     ds        DETTargetSpecification ; offset: $4 (4) ;  The target for the request 
  926. property                 ds.w    1                ; offset: $14 (20)        ;  The property to apply the request to 
  927. resourceType             ds.l    1                ; offset: $16 (22)        ;   -> Resource type 
  928. theResource                 ds.l    1                ; offset: $1A (26)        ;  <-  The resource handle (caller must dispose when done) 
  929. sizeof                     EQU *                    ; size:   $1E (30)
  930.                         ENDR
  931. DETTemplateCounts        RECORD 0
  932. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  933. aspectTemplateCount         ds.l    1                ; offset: $4 (4)        ;  <-  Number of aspect templates in the system 
  934. infoPageTemplateCount     ds.l    1                ; offset: $8 (8)        ;  <-  Number of info-page templates in the system 
  935. sizeof                     EQU *                    ; size:   $C (12)
  936.                         ENDR
  937. DETUnloadTemplatesBlock    RECORD 0
  938. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  939. sizeof                     EQU *                    ; size:   $4 (4)
  940.                         ENDR
  941. DETCallBackBlock        RECORD 0
  942. protoCallBack             ds        DETProtoCallBackBlock ; offset: $0 (0)
  943.                          ORG 0
  944. beep                     ds        DETBeepBlock    ; offset: $0 (0)
  945.                          ORG 0
  946. busy                     ds        DETBusyBlock    ; offset: $0 (0)
  947.                          ORG 0
  948. changeCallFors             ds        DETChangeCallForsBlock ; offset: $0 (0)
  949.                          ORG 0
  950. getCommandSelectionCount  ds    DETGetCommandSelectionCountBlock ; offset: $0 (0)
  951.                          ORG 0
  952. getCommandItemN             ds        DETGetCommandItemNBlock ; offset: $0 (0)
  953.                          ORG 0
  954. getDSSpec                 ds        DETGetDSSpecBlock ; offset: $0 (0)
  955.                          ORG 0
  956. getTemplateFSSpec         ds        DETGetTemplateFSSpecBlock ; offset: $0 (0)
  957.                          ORG 0
  958. getOpenEdit                 ds        DETGetOpenEditBlock ; offset: $0 (0)
  959.                          ORG 0
  960. closeEdit                 ds        DETCloseEditBlock ; offset: $0 (0)
  961.                          ORG 0
  962. getPropertyType             ds        DETGetPropertyTypeBlock ; offset: $0 (0)
  963.                          ORG 0
  964. getPropertyNumber         ds        DETGetPropertyNumberBlock ; offset: $0 (0)
  965.                          ORG 0
  966. getPropertyRString         ds        DETGetPropertyRStringBlock ; offset: $0 (0)
  967.                          ORG 0
  968. getPropertyBinarySize     ds        DETGetPropertyBinarySizeBlock ; offset: $0 (0)
  969.                          ORG 0
  970. getPropertyBinary         ds        DETGetPropertyBinaryBlock ; offset: $0 (0)
  971.                          ORG 0
  972. getPropertyChanged         ds        DETGetPropertyChangedBlock ; offset: $0 (0)
  973.                          ORG 0
  974. getPropertyEditable         ds        DETGetPropertyEditableBlock ; offset: $0 (0)
  975.                          ORG 0
  976. setPropertyType             ds        DETSetPropertyTypeBlock ; offset: $0 (0)
  977.                          ORG 0
  978. setPropertyNumber         ds        DETSetPropertyNumberBlock ; offset: $0 (0)
  979.                          ORG 0
  980. setPropertyRString         ds        DETSetPropertyRStringBlock ; offset: $0 (0)
  981.                          ORG 0
  982. setPropertyBinary         ds        DETSetPropertyBinaryBlock ; offset: $0 (0)
  983.                          ORG 0
  984. setPropertyChanged         ds        DETSetPropertyChangedBlock ; offset: $0 (0)
  985.                          ORG 0
  986. setPropertyEditable         ds        DETSetPropertyEditableBlock ; offset: $0 (0)
  987.                          ORG 0
  988. dirtyProperty             ds        DETDirtyPropertyBlock ; offset: $0 (0)
  989.                          ORG 0
  990. doPropertyCommand         ds        DETDoPropertyCommandBlock ; offset: $0 (0)
  991.                          ORG 0
  992. sublistCount             ds        DETSublistCountBlock ; offset: $0 (0)
  993.                          ORG 0
  994. selectedSublistCount     ds        DETSelectedSublistCountBlock ; offset: $0 (0)
  995.                          ORG 0
  996. requestSync                 ds        DETRequestSyncBlock ; offset: $0 (0)
  997.                          ORG 0
  998. addMenu                     ds        DETAddMenuBlock ; offset: $0 (0)
  999.                          ORG 0
  1000. removeMenu                 ds        DETRemoveMenuBlock ; offset: $0 (0)
  1001.                          ORG 0
  1002. menuItemRString             ds        DETMenuItemRStringBlock ; offset: $0 (0)
  1003.                          ORG 0
  1004. openDSSpec                 ds        DETOpenDSSpecBlock ; offset: $0 (0)
  1005.                          ORG 0
  1006. aboutToTalk                 ds        DETAboutToTalkBlock ; offset: $0 (0)
  1007.                          ORG 0
  1008. breakAttribute             ds        DETBreakAttributeBlock ; offset: $0 (0)
  1009.                          ORG 0
  1010. saveProperty             ds        DETSavePropertyBlock ; offset: $0 (0)
  1011.                          ORG 0
  1012. getCustomViewUserReference  ds    DETGetCustomViewUserReferenceBlock ; offset: $0 (0)
  1013.                          ORG 0
  1014. getCustomViewBounds         ds        DETGetCustomViewBoundsBlock ; offset: $0 (0)
  1015.                          ORG 0
  1016. getResource                 ds        DETGetResourceBlock ; offset: $0 (0)
  1017.                          ORG 0
  1018. templateCounts             ds        DETTemplateCounts ; offset: $0 (0)
  1019.                          ORG 0
  1020. unloadTemplates             ds        DETUnloadTemplatesBlock ; offset: $0 (0)
  1021.                          ORG 96
  1022. sizeof                     EQU *                    ; size:   $60 (96)
  1023.                         ENDR
  1024. ; typedef union DETCallBackBlock *        DETCallBackBlockPtr
  1025.  
  1026.  
  1027.  
  1028. ; typedef DETCallBlock *                DETCallBlockPtr
  1029.  
  1030. ; typedef DETCallBackUPP                 DETCallBack
  1031.  
  1032. DETProtoCallBlock        RECORD 0
  1033. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1034. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1035. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1036. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1037. ;     common to all invocations of code resource) 
  1038. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1039. ;     code resource) 
  1040. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1041. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1042. filler1                     ds.b    1                ; offset: $25 (37)
  1043. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1044. sizeof                     EQU *                    ; size:   $28 (40)
  1045.                         ENDR
  1046. DETInitBlock            RECORD 0
  1047. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1048. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1049. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1050. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, common to all invocations of code resource) 
  1051. newCallFors                 ds.l    1                ; offset: $10 (16)        ;  <-  New call-for mask 
  1052. sizeof                     EQU *                    ; size:   $14 (20)
  1053.                         ENDR
  1054. DETExitBlock            RECORD 0
  1055. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1056. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1057. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1058. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, common to all invocations of code resource) 
  1059. sizeof                     EQU *                    ; size:   $10 (16)
  1060.                         ENDR
  1061. DETInstanceInitBlock    RECORD 0
  1062. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1063. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1064. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1065. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1066. ;     common to all invocations of code resource) 
  1067. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1068. ;     code resource) 
  1069. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1070. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1071. filler1                     ds.b    1                ; offset: $25 (37)
  1072. sizeof                     EQU *                    ; size:   $26 (38)
  1073.                         ENDR
  1074. DETInstanceExitBlock    RECORD 0
  1075. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1076. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1077. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1078. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1079. ;     common to all invocations of code resource) 
  1080. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1081. ;     code resource) 
  1082. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1083. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1084. filler1                     ds.b    1                ; offset: $25 (37)
  1085. sizeof                     EQU *                    ; size:   $26 (38)
  1086.                         ENDR
  1087. DETInstanceIdleBlock    RECORD 0
  1088. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1089. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1090. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1091. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1092. ;     common to all invocations of code resource) 
  1093. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1094. ;     code resource) 
  1095. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1096. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1097. filler1                     ds.b    1                ; offset: $25 (37)
  1098. sizeof                     EQU *                    ; size:   $26 (38)
  1099.                         ENDR
  1100. DETPropertyCommandBlock    RECORD 0
  1101. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1102. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1103. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1104. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1105. ;     common to all invocations of code resource) 
  1106. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1107. ;     code resource) 
  1108. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1109. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1110. filler1                     ds.b    1                ; offset: $25 (37)
  1111. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1112. parameter                 ds.l    1                ; offset: $28 (40)        ;   -> Parameter of command 
  1113. sizeof                     EQU *                    ; size:   $2C (44)
  1114.                         ENDR
  1115. DETMaximumTextLengthBlock RECORD 0
  1116. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1117. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1118. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1119. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1120. ;     common to all invocations of code resource) 
  1121. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1122. ;     code resource) 
  1123. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1124. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1125. filler1                     ds.b    1                ; offset: $25 (37)
  1126. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1127. maxSize                     ds.l    1                ; offset: $28 (40)        ;  <-  Return the maximum number of characters the user can entry when property is edited in an EditText 
  1128. sizeof                     EQU *                    ; size:   $2C (44)
  1129.                         ENDR
  1130. DETViewListChangedBlock    RECORD 0
  1131. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1132. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1133. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1134. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1135. ;     common to all invocations of code resource) 
  1136. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1137. ;     code resource) 
  1138. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1139. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1140. filler1                     ds.b    1                ; offset: $25 (37)
  1141. sizeof                     EQU *                    ; size:   $26 (38)
  1142.                         ENDR
  1143. DETPropertyDirtiedBlock    RECORD 0
  1144. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1145. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1146. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1147. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1148. ;     common to all invocations of code resource) 
  1149. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1150. ;     code resource) 
  1151. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1152. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1153. filler1                     ds.b    1                ; offset: $25 (37)
  1154. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1155. sizeof                     EQU *                    ; size:   $28 (40)
  1156.                         ENDR
  1157. DETValidateSaveBlock    RECORD 0
  1158. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1159. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1160. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1161. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1162. ;     common to all invocations of code resource) 
  1163. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1164. ;     code resource) 
  1165. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1166. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1167. filler1                     ds.b    1                ; offset: $25 (37)
  1168. errorString                 ds.l    1                ; offset: $26 (38)        ;  <-  Handle with error string if validation fails (callee must allocate handle, DE will DisposHandle() it) 
  1169. sizeof                     EQU *                    ; size:   $2A (42)
  1170.                         ENDR
  1171. DETDropQueryBlock        RECORD 0
  1172. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1173. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1174. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1175. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1176. ;     common to all invocations of code resource) 
  1177. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1178. ;     code resource) 
  1179. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1180. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1181. filler1                     ds.b    1                ; offset: $25 (37)
  1182. modifiers                 ds.w    1                ; offset: $26 (38)        ;   -> Modifiers at drop time (option/control/command/shift keys) 
  1183. commandID                 ds.l    1                ; offset: $28 (40)        ;  <-> Command ID (kDETDoNothing, kDETMove, kDETDrag (copy), kDETAlias, or a property number) 
  1184. destinationType             ds        AttributeType    ; offset: $2C (44)        ;  <-> Type to convert attribute to 
  1185. copyToHFS                 ds.b    1                ; offset: $50 (80)        ;  <-  If true, object should be copied to HFS before being operated on, and deleted after 
  1186. filler2                     ds.b    1                ; offset: $51 (81)
  1187. sizeof                     EQU *                    ; size:   $52 (82)
  1188.                         ENDR
  1189. DETDropMeQueryBlock        RECORD 0
  1190. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1191. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1192. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1193. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1194. ;     common to all invocations of code resource) 
  1195. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1196. ;     code resource) 
  1197. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1198. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1199. filler1                     ds.b    1                ; offset: $25 (37)
  1200. modifiers                 ds.w    1                ; offset: $26 (38)        ;   -> Modifiers at drop time (option/control/command/shift keys) 
  1201. commandID                 ds.l    1                ; offset: $28 (40)        ;  <-> Command ID (kDETDoNothing, kDETMove, kDETDrag (copy), kDETAlias, or a property number) 
  1202. destinationType             ds        AttributeType    ; offset: $2C (44)        ;  <-> Type to convert attribute to 
  1203. copyToHFS                 ds.b    1                ; offset: $50 (80)        ;  <-  If true, object should be copied to HFS before being operated on, and deleted after 
  1204. filler2                     ds.b    1                ; offset: $51 (81)
  1205. sizeof                     EQU *                    ; size:   $52 (82)
  1206.                         ENDR
  1207. DETAttributeCreationBlock RECORD 0
  1208. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1209. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1210. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1211. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, common to all invocations of code resource) 
  1212. parent                     ds.l    1                ; offset: $10 (16)        ;   -> The object within which the creation will occur 
  1213. refNum                     ds.w    1                ; offset: $14 (20)        ;   -> Refnum for returned address (DSSpecs in PDs only) 
  1214. identity                 ds.l    1                ; offset: $16 (22)        ;   -> The identity we're browsing as in the parent object 
  1215. attrType                 ds        AttributeType    ; offset: $1A (26)        ;  <-> The type of the attribute being created 
  1216. attrTag                     ds.l    1                ; offset: $3E (62)        ;  <-> The tag of the attribute being created 
  1217. value                     ds.l    1                ; offset: $42 (66)        ;  <-> The value to write (pre-allocated, resize as needed) 
  1218. sizeof                     EQU *                    ; size:   $46 (70)
  1219.                         ENDR
  1220. DETAttributeNewBlock    RECORD 0
  1221. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1222. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1223. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1224. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1225. ;     common to all invocations of code resource) 
  1226. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1227. ;     code resource) 
  1228. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1229. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1230. filler1                     ds.b    1                ; offset: $25 (37)
  1231. parent                     ds.l    1                ; offset: $26 (38)        ;   -> The object within which the creation will occur 
  1232. refNum                     ds.w    1                ; offset: $2A (42)        ;   -> Refnum for returned address (DSSpecs in PDs only) 
  1233. identity                 ds.l    1                ; offset: $2C (44)        ;   -> The identity we're browsing as in the parent object 
  1234. attrType                 ds        AttributeType    ; offset: $30 (48)        ;  <-> The type of the attribute being created 
  1235. attrTag                     ds.l    1                ; offset: $54 (84)        ;  <-> The tag of the attribute being created 
  1236. value                     ds.l    1                ; offset: $58 (88)        ;  <-> The value to write (pre-allocated, resize as needed) 
  1237. sizeof                     EQU *                    ; size:   $5C (92)
  1238.                         ENDR
  1239. DETAttributeChangeBlock    RECORD 0
  1240. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1241. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1242. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1243. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1244. ;     common to all invocations of code resource) 
  1245. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1246. ;     code resource) 
  1247. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1248. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1249. filler1                     ds.b    1                ; offset: $25 (37)
  1250. parent                     ds.l    1                ; offset: $26 (38)        ;   -> The object within which the creation will occur 
  1251. refNum                     ds.w    1                ; offset: $2A (42)        ;   -> Refnum for returned address (DSSpecs in PDs only) 
  1252. identity                 ds.l    1                ; offset: $2C (44)        ;   -> The identity we're browsing as in the parent object 
  1253. attrType                 ds        AttributeType    ; offset: $30 (48)        ;  <-> The type of the attribute being changed 
  1254. attrTag                     ds.l    1                ; offset: $54 (84)        ;  <-> The tag of the attribute being changed 
  1255. attrCID                     ds        AttributeCreationID ; offset: $58 (88) ;  <-> The CID of the attribute being changed 
  1256. value                     ds.l    1                ; offset: $60 (96)        ;  <-> The value to write (pre-allocated, resize as needed) 
  1257. sizeof                     EQU *                    ; size:   $64 (100)
  1258.                         ENDR
  1259. DETAttributeDeleteBlock    RECORD 0
  1260. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1261. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1262. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1263. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1264. ;     common to all invocations of code resource) 
  1265. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1266. ;     code resource) 
  1267. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1268. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1269. filler1                     ds.b    1                ; offset: $25 (37)
  1270. dsSpec                     ds.l    1                ; offset: $26 (38)        ;   -> The object which will be deleted 
  1271. refNum                     ds.w    1                ; offset: $2A (42)        ;   -> Refnum for returned address (DSSpecs in PDs only) 
  1272. identity                 ds.l    1                ; offset: $2C (44)        ;   -> The identity we're browsing as 
  1273. sizeof                     EQU *                    ; size:   $30 (48)
  1274.                         ENDR
  1275. DETItemNewBlock            RECORD 0
  1276. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1277. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1278. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1279. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1280. ;     common to all invocations of code resource) 
  1281. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1282. ;     code resource) 
  1283. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1284. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1285. filler1                     ds.b    1                ; offset: $25 (37)
  1286. sizeof                     EQU *                    ; size:   $26 (38)
  1287.                         ENDR
  1288. DETShouldSyncBlock        RECORD 0
  1289. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1290. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1291. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1292. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1293. ;     common to all invocations of code resource) 
  1294. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1295. ;     code resource) 
  1296. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1297. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1298. filler1                     ds.b    1                ; offset: $25 (37)
  1299. shouldSync                 ds.b    1                ; offset: $26 (38)        ;  <-  True if we should now sync with catalog 
  1300. filler2                     ds.b    1                ; offset: $27 (39)
  1301. sizeof                     EQU *                    ; size:   $28 (40)
  1302.                         ENDR
  1303. DETDoSyncBlock            RECORD 0
  1304. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1305. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1306. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1307. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1308. ;     common to all invocations of code resource) 
  1309. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1310. ;     code resource) 
  1311. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1312. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1313. filler1                     ds.b    1                ; offset: $25 (37)
  1314. sizeof                     EQU *                    ; size:   $26 (38)
  1315.                         ENDR
  1316. DETPatternInBlock        RECORD 0
  1317. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1318. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1319. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1320. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1321. ;     common to all invocations of code resource) 
  1322. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1323. ;     code resource) 
  1324. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1325. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1326. filler1                     ds.b    1                ; offset: $25 (37)
  1327. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1328. elementType                 ds.l    1                ; offset: $28 (40)        ;   -> Element type from pattern 
  1329. extra                     ds.l    1                ; offset: $2C (44)        ;   -> Extra field from pattern 
  1330. attribute                 ds.l    1                ; offset: $30 (48)        ;   -> The complete attribute 
  1331. dataOffset                 ds.l    1                ; offset: $34 (52)        ;  <-> Offset to current (next) byte 
  1332. bitOffset                 ds.w    1                ; offset: $38 (56)        ;  <-> Bit offset (next bit is *fData >> fBitOffset++) 
  1333. sizeof                     EQU *                    ; size:   $3A (58)
  1334.                         ENDR
  1335. DETPatternOutBlock        RECORD 0
  1336. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1337. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1338. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1339. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1340. ;     common to all invocations of code resource) 
  1341. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1342. ;     code resource) 
  1343. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1344. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1345. filler1                     ds.b    1                ; offset: $25 (37)
  1346. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1347. elementType                 ds.l    1                ; offset: $28 (40)        ;   -> Element type from pattern 
  1348. extra                     ds.l    1                ; offset: $2C (44)        ;   -> Extra field from pattern 
  1349. attribute                 ds.l    1                ; offset: $30 (48)        ;   -> The attribute (minus the data portion) 
  1350. data                     ds.l    1                ; offset: $34 (52)        ;   -> Data to be written (pre-allocated, resize and add at end) 
  1351. dataOffset                 ds.l    1                ; offset: $38 (56)        ;  <-> Offset to next byte to write 
  1352. bitOffset                 ds.w    1                ; offset: $3C (60)        ;  <-> Bit offset (if zero, handle will need to be resized to one more byte before write) 
  1353. sizeof                     EQU *                    ; size:   $3E (62)
  1354.                         ENDR
  1355. DETOpenSelfBlock        RECORD 0
  1356. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1357. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1358. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1359. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1360. ;     common to all invocations of code resource) 
  1361. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1362. ;     code resource) 
  1363. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1364. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1365. filler1                     ds.b    1                ; offset: $25 (37)
  1366. modifiers                 ds.w    1                ; offset: $26 (38)        ;   -> Modifiers at open time (option/control/command/shift keys) 
  1367. sizeof                     EQU *                    ; size:   $28 (40)
  1368.                         ENDR
  1369. DETConvertToNumberBlock    RECORD 0
  1370. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1371. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1372. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1373. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1374. ;     common to all invocations of code resource) 
  1375. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1376. ;     code resource) 
  1377. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1378. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1379. filler1                     ds.b    1                ; offset: $25 (37)
  1380. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1381. theValue                 ds.l    1                ; offset: $28 (40)        ;  <-  The converted value to return 
  1382. sizeof                     EQU *                    ; size:   $2C (44)
  1383.                         ENDR
  1384. DETConvertToRStringBlock RECORD 0
  1385. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1386. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1387. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1388. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1389. ;     common to all invocations of code resource) 
  1390. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1391. ;     code resource) 
  1392. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1393. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1394. filler1                     ds.b    1                ; offset: $25 (37)
  1395. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1396. theValue                 ds.l    1                ; offset: $28 (40)        ;  <-  A handle with the converted value (callee must allocate handle, DE will DisposHandle() it) 
  1397. sizeof                     EQU *                    ; size:   $2C (44)
  1398.                         ENDR
  1399. DETConvertFromNumberBlock RECORD 0
  1400. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1401. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1402. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1403. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1404. ;     common to all invocations of code resource) 
  1405. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1406. ;     code resource) 
  1407. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1408. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1409. filler1                     ds.b    1                ; offset: $25 (37)
  1410. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1411. theValue                 ds.l    1                ; offset: $28 (40)        ;   -> The value to convert (result should be written direct to the property) 
  1412. sizeof                     EQU *                    ; size:   $2C (44)
  1413.                         ENDR
  1414. DETConvertFromRStringBlock RECORD 0
  1415. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1416. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1417. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1418. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1419. ;     common to all invocations of code resource) 
  1420. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1421. ;     code resource) 
  1422. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1423. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1424. filler1                     ds.b    1                ; offset: $25 (37)
  1425. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1426. theValue                 ds.l    1                ; offset: $28 (40)        ;   -> The value to convert (result should be written direct to the property) 
  1427. sizeof                     EQU *                    ; size:   $2C (44)
  1428.                         ENDR
  1429. DETCustomViewDrawBlock    RECORD 0
  1430. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1431. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1432. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1433. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1434. ;     common to all invocations of code resource) 
  1435. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1436. ;     code resource) 
  1437. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1438. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1439. filler1                     ds.b    1                ; offset: $25 (37)
  1440. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1441. sizeof                     EQU *                    ; size:   $28 (40)
  1442.                         ENDR
  1443. DETCustomViewMouseDownBlock RECORD 0
  1444. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1445. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1446. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1447. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1448. ;     common to all invocations of code resource) 
  1449. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1450. ;     code resource) 
  1451. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1452. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1453. filler1                     ds.b    1                ; offset: $25 (37)
  1454. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1455. theEvent                 ds.l    1                ; offset: $28 (40)        ;   -> The original event record of the mouse-down 
  1456. sizeof                     EQU *                    ; size:   $2C (44)
  1457.                         ENDR
  1458. DETKeyPressBlock        RECORD 0
  1459. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1460. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1461. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1462. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1463. ;     common to all invocations of code resource) 
  1464. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1465. ;     code resource) 
  1466. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1467. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1468. filler1                     ds.b    1                ; offset: $25 (37)
  1469. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1470. theEvent                 ds.l    1                ; offset: $28 (40)        ;   -> The original event record of the key-press 
  1471. sizeof                     EQU *                    ; size:   $2C (44)
  1472.                         ENDR
  1473. DETPasteBlock            RECORD 0
  1474. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1475. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1476. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1477. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1478. ;     common to all invocations of code resource) 
  1479. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1480. ;     code resource) 
  1481. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1482. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1483. filler1                     ds.b    1                ; offset: $25 (37)
  1484. property                 ds.w    1                ; offset: $26 (38)        ;  The property number the call refers to 
  1485. modifiers                 ds.w    1                ; offset: $28 (40)        ;   -> Modifiers at paste time (option/control/command/shift keys) 
  1486. sizeof                     EQU *                    ; size:   $2A (42)
  1487.                         ENDR
  1488. DETCustomMenuSelectedBlock RECORD 0
  1489. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1490. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1491. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1492. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1493. ;     common to all invocations of code resource) 
  1494. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1495. ;     code resource) 
  1496. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1497. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1498. filler1                     ds.b    1                ; offset: $25 (37)
  1499. menuTableParameter         ds.w    1                ; offset: $26 (38)        ;   -> The "property" field from the custom menu table 
  1500. sizeof                     EQU *                    ; size:   $28 (40)
  1501.                         ENDR
  1502. DETCustomMenuEnabledBlock RECORD 0
  1503. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1504. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1505. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1506. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1507. ;     common to all invocations of code resource) 
  1508. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1509. ;     code resource) 
  1510. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1511. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1512. filler1                     ds.b    1                ; offset: $25 (37)
  1513. menuTableParameter         ds.w    1                ; offset: $26 (38)        ;   -> The "property" field from the custom menu table 
  1514. enable                     ds.b    1                ; offset: $28 (40)        ;  <-  Whether to enable the menu item 
  1515. filler2                     ds.b    1                ; offset: $29 (41)
  1516. sizeof                     EQU *                    ; size:   $2A (42)
  1517.                         ENDR
  1518. DETForwarderListItem    RECORD 0
  1519. next                     ds.l    1                ; offset: $0 (0)        ;  Pointer to next item, or nil 
  1520. attributeValueTag         ds.l    1                ; offset: $4 (4)        ;  Tag of new templates (0 for none) 
  1521. rstrs                     ds        PackedPathName ; offset: $8 (8)            ;  Record type (empty if none), attrbute type (empty if none),list of template names to forward to 
  1522. sizeof                     EQU *                    ; size:   $408 (1032)
  1523.                         ENDR
  1524. ; typedef struct DETForwarderListItem *    DETForwarderListPtr
  1525.  
  1526. ; typedef DETForwarderListPtr *            DETForwarderListHandle
  1527.  
  1528. DETDynamicForwardersBlock RECORD 0
  1529. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1530. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1531. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1532. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, common to all invocations of code resource) 
  1533. forwarders                 ds.l    1                ; offset: $10 (16)        ;  <-  List of forwaders 
  1534. sizeof                     EQU *                    ; size:   $14 (20)
  1535.                         ENDR
  1536. DETDynamicResourceBlock    RECORD 0
  1537. reqFunction                 ds.l    1                ; offset: $0 (0)        ;  Requested function 
  1538. callBack                 ds.l    1                ; offset: $4 (4)        ;  Pointer to call-back routine 
  1539. callBackPrivate             ds.l    1                ; offset: $8 (8)        ;  Private data for the call-back routine 
  1540. templatePrivate             ds.l    1                ; offset: $C (12)        ;  Private storage for use by code resource (stays for life of code resource, 
  1541. ;     common to all invocations of code resource) 
  1542. instancePrivate             ds.l    1                ; offset: $10 (16)        ;  Private storage for use by code resource (separate for each item using the 
  1543. ;     code resource) 
  1544. target                     ds        DETTargetSpecification ; offset: $14 (20) ;  The target (originator) of the call, for targeted and property calls 
  1545. targetIsMainAspect         ds.b    1                ; offset: $24 (36)        ;  True if the target is the main aspect (even though it has a non-nil name) 
  1546. filler1                     ds.b    1                ; offset: $25 (37)
  1547. resourceType             ds.l    1                ; offset: $26 (38)        ;   -> The resource type being requested 
  1548. propertyNumber             ds.w    1                ; offset: $2A (42)        ;   -> The property number of the resource being requested 
  1549. resourceID                 ds.w    1                ; offset: $2C (44)        ;   -> The resource ID (base ID + property number) of the resource 
  1550. theResource                 ds.l    1                ; offset: $2E (46)        ;  <-  The requested resource 
  1551. sizeof                     EQU *                    ; size:   $32 (50)
  1552.                         ENDR
  1553. DETCallBlock            RECORD 0
  1554. protoCall                 ds        DETProtoCallBlock ; offset: $0 (0)
  1555.                          ORG 0
  1556. init                     ds        DETInitBlock    ; offset: $0 (0)
  1557.                          ORG 0
  1558. exit                     ds        DETExitBlock    ; offset: $0 (0)
  1559.                          ORG 0
  1560. instanceInit             ds        DETInstanceInitBlock ; offset: $0 (0)
  1561.                          ORG 0
  1562. instanceExit             ds        DETInstanceExitBlock ; offset: $0 (0)
  1563.                          ORG 0
  1564. instanceIdle             ds        DETInstanceIdleBlock ; offset: $0 (0)
  1565.                          ORG 0
  1566. propertyCommand             ds        DETPropertyCommandBlock ; offset: $0 (0)
  1567.                          ORG 0
  1568. maximumTextLength         ds        DETMaximumTextLengthBlock ; offset: $0 (0)
  1569.                          ORG 0
  1570. viewListChanged             ds        DETViewListChangedBlock ; offset: $0 (0)
  1571.                          ORG 0
  1572. propertyDirtied             ds        DETPropertyDirtiedBlock ; offset: $0 (0)
  1573.                          ORG 0
  1574. validateSave             ds        DETValidateSaveBlock ; offset: $0 (0)
  1575.                          ORG 0
  1576. dropQuery                 ds        DETDropQueryBlock ; offset: $0 (0)
  1577.                          ORG 0
  1578. dropMeQuery                 ds        DETDropMeQueryBlock ; offset: $0 (0)
  1579.                          ORG 0
  1580. attributeCreationBlock     ds        DETAttributeCreationBlock ; offset: $0 (0)
  1581.                          ORG 0
  1582. attributeNew             ds        DETAttributeNewBlock ; offset: $0 (0)
  1583.                          ORG 0
  1584. attributeChange             ds        DETAttributeChangeBlock ; offset: $0 (0)
  1585.                          ORG 0
  1586. attributeDelete             ds        DETAttributeDeleteBlock ; offset: $0 (0)
  1587.                          ORG 0
  1588. itemNew                     ds        DETItemNewBlock ; offset: $0 (0)
  1589.                          ORG 0
  1590. patternIn                 ds        DETPatternInBlock ; offset: $0 (0)
  1591.                          ORG 0
  1592. patternOut                 ds        DETPatternOutBlock ; offset: $0 (0)
  1593.                          ORG 0
  1594. shouldSync                 ds        DETShouldSyncBlock ; offset: $0 (0)
  1595.                          ORG 0
  1596. doSync                     ds        DETDoSyncBlock ; offset: $0 (0)
  1597.                          ORG 0
  1598. openSelf                 ds        DETOpenSelfBlock ; offset: $0 (0)
  1599.                          ORG 0
  1600. convertToNumber             ds        DETConvertToNumberBlock ; offset: $0 (0)
  1601.                          ORG 0
  1602. convertToRString         ds        DETConvertToRStringBlock ; offset: $0 (0)
  1603.                          ORG 0
  1604. convertFromNumber         ds        DETConvertFromNumberBlock ; offset: $0 (0)
  1605.                          ORG 0
  1606. convertFromRString         ds        DETConvertFromRStringBlock ; offset: $0 (0)
  1607.                          ORG 0
  1608. customViewDraw             ds        DETCustomViewDrawBlock ; offset: $0 (0)
  1609.                          ORG 0
  1610. customViewMouseDown         ds        DETCustomViewMouseDownBlock ; offset: $0 (0)
  1611.                          ORG 0
  1612. keyPress                 ds        DETKeyPressBlock ; offset: $0 (0)
  1613.                          ORG 0
  1614. paste                     ds        DETPasteBlock    ; offset: $0 (0)
  1615.                          ORG 0
  1616. customMenuSelected         ds        DETCustomMenuSelectedBlock ; offset: $0 (0)
  1617.                          ORG 0
  1618. customMenuEnabled         ds        DETCustomMenuEnabledBlock ; offset: $0 (0)
  1619.                          ORG 0
  1620. dynamicForwarders         ds        DETDynamicForwardersBlock ; offset: $0 (0)
  1621.                          ORG 0
  1622. dynamicResource             ds        DETDynamicResourceBlock ; offset: $0 (0)
  1623.                          ORG 100
  1624. sizeof                     EQU *                    ; size:   $64 (100)
  1625.                         ENDR
  1626. ;  Call-for list: 
  1627.  
  1628. kDETCallForOther                EQU        1                    ; Call for things not listed below (also auto-enabled by DE if any of the below are enabled) 
  1629. kDETCallForIdle                    EQU        2                    ; kDETcmdIdle 
  1630. kDETCallForCommands                EQU        4                    ; kDETcmdPropertyCommand, kDETcmdSelfOpen 
  1631. kDETCallForViewChanges            EQU        8                    ; kDETcmdViewListChanged, kDETcmdPropertyDirtied, kDETcmdMaximumTextLength 
  1632. kDETCallForDrops                EQU        $10                    ; kDETcmdDropQuery, kDETcmdDropMeQuery 
  1633. kDETCallForAttributes            EQU        $20                    ; kDETcmdAttributeCreation, kDETcmdAttributeNew, kDETcmdAttributeChange, kDETcmdAttributeDelete 
  1634. kDETCallForValidation            EQU        $40                    ; kDETcmdValidateSave 
  1635. kDETCallForKeyPresses            EQU        $80                    ; kDETcmdKeyPress and kDETcmdPaste 
  1636. kDETCallForResources            EQU        $0100                ; kDETcmdDynamicResource 
  1637. kDETCallForSyncing                EQU        $0200                ; kDETcmdShouldSync, kDETcmdDoSync 
  1638. kDETCallForEscalation            EQU        $8000                ; All calls escalated from the next lower level 
  1639. kDETCallForNothing                EQU        0                    ; None of the above 
  1640. kDETCallForEverything            EQU        $FFFFFFFF            ; All of the above 
  1641. ; typedef DETCallUPP                     DETCall
  1642.  
  1643. ;  This following macro saves you from having to dig out the call-back pointer from the call block: 
  1644. ; **********************************************************************************
  1645. ; ******************************** SAM Definitions: ********************************
  1646. ; **********************************************************************************
  1647. ;  SAM Developers should use property numbers starting at this point: 
  1648.  
  1649. kSAMFirstDevProperty            EQU        50
  1650. ;
  1651. ;    SAM templates have additional resources/properties that are required
  1652. ;    for interaction with the AOCE Key Chain.
  1653. ;    
  1654. ;     Type    Offset                        Description
  1655. ;     ----    ------                        -----------
  1656. ;    'rstr'    kSAMAspectUserName            The user name
  1657. ;    'rstr'    kSAMAspectKind                The kind of SAM
  1658. ;    'detn'    kSAMAspectCannotDelete        If 0, then the slot cannot be deleted
  1659. ;    'sami'    kSAMAspectSlotCreationInfo    The info required to create a slot record
  1660. ;
  1661.  
  1662. kSAMAspectUserName                EQU        41
  1663. kSAMAspectKind                    EQU        42
  1664. kSAMAspectCannotDelete            EQU        43
  1665. kSAMAspectSlotCreationInfo        EQU        44
  1666. ;
  1667. ;*************************************************************************************
  1668. ; ********************************* Admin Definitions: *********************************
  1669. ; *************************************************************************************
  1670. ;
  1671.  
  1672. kDETAdminVersion                EQU        -978
  1673.     ENDIF
  1674.     ENDIF ; __OCETEMPLATES__ 
  1675.  
  1676.